Copyright(C) 1994 Terumasa KODAKA , Takeshi KONO ■グラフィックBIOS[PC-98LT・HA] グラフィックBIOSの概要 o PC-98LT・HAでは、グラフィック描画を行うためのグラフィックBIOSを ROM内プログラムで用意している。これは、ノーマルモードのグラフィック BIOSとグラフLIOを合わせたような機能である。ただし、ノーマルモードとの 互換性はない。ハイレゾモードのグラフィックBIOSとは類似している。 o グラフィックBIOSは、テクニカルデータブックに詳細な説明があるため、 本書では最低限の情報を掲載するにとどめた。ただし、非公開情報などが ある一部のファンクションについては詳しく触れた。 表 PC-98LT・HAのグラフィックモード PC-98LT・HA------モノクロ-----640x400ドット INT 1Dh - Function 00h(LT・HA) 分類 GRAPH BIOS 名前 グラフィックBIOSの初期化 (GINIT) 対象 PC-98LT・HA 入力 AH=00h DS=グラフィックBIOS用作業域のセグメント DS:0020h(DWORD)=中断処理ルーチンのエントリアドレス 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 01h(LT・HA) 分類 GRAPH BIOS 名前 ビューポート領域の初期化(GSCREEN) 対象 PC-98LT・HA 入力 AH=01h DS=グラフィックBIOS用作業域のセグメント 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 02h(LT・HA) 分類 GRAPH BIOS 名前 描画領域の指定 (GVIEW) 対象 PC-98LT・HA 入力 AH=02h DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=ビューポートの左上X座標(X1) DS:0022h(WORD)=ビューポートの左上Y座標(Y1) DS:0024h(WORD)=ビューポートの右下X座標(X2) DS:0026h(WORD)=ビューポートの右下Y座標(Y2) * X1<X2,Y1<Y2でなければならない DS:0028h(BYTE)=ビューポート内を塗り潰す色 00h: 白 01h: 黒 FFh: 塗り潰しを行わない DS:0029h(BYTE)=ビューポートの外枠を描く色 00h: 白 01h: 黒 FFh: 枠を描かない 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 03h(LT・HA) 分類 GRAPH BIOS 名前 フォアグラウンドカラー,バックグラウンドカラーの指定(GCOLOR1) 対象 PC-98LT・HA 入力 AH=03h DS=グラフィックBIOS用作業域のセグメント DS:0020h(BYTE)=バックグラウンドカラー 00h: 白 01h: 黒 FFh: 変更しない DS:0021h(BYTE)=フォアグラウンドカラー 00h: 白 01h: 黒 FFh: 変更しない 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 04h(LT・HA) 分類 GRAPH BIOS 名前 なし 対象 PC-98LT・HA 入力 AH=05h 出力 なし 解説 o 機能なし。ハイレゾのグラフィックBIOSでは「パレット番号と表示色の対応」 に相当。 関連 INT 1Dh - Function 05h(LT・HA) 分類 GRAPH BIOS 名前 描画領域のクリア (GCLS) 対象 PC-98LT・HA 入力 AH=05h DS=グラフィックBIOS用作業域のセグメント 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 06h(LT・HA) 分類 GRAPH BIOS 名前 ドットの書き込み (GPSET) 対象 PC-98LT・HA 入力 AH=06h DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=ドットを書き込むX座標 DS:0022h(WORD)=ドットを書き込むY座標 DS:0024h(BYTE)=パレット番号 00h: 白 01h: 黒 FFh: ALレジスタの動作モード指定に従ったパレット番号で書き込む AL=動作モード指定(DS:0024h=FFhのとき) 01h: フォアグラウンドカラーの色で書き込む 02h: バックグラウンドカラーの色で書き込む 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 07h(LT・HA) 分類 GRAPH BIOS 名前 直線、矩形の描画 (GLINE) 対象 PC-98LT・HA 入力 AH=07h DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=描画始点のX座標(X1)(-32768〜32767) DS:0022h(WORD)=描画始点のY座標(Y1)(-32768〜32767) DS:0024h(WORD)=描画終点のX座標(X2)(-32768〜32767) DS:0026h(WORD)=描画終点のY座標(Y2)(-32768〜32767) DS:0028h(BYTE)=矩形を描画する表示色 00h: 黒 01h: 白 FFh: 省略 DS:0029h(BYTE)=描画コード 00h: 直線描画指定 01h: 矩形描画指定 02h: 矩形塗り潰し描画指定 ■描画コード=直線・矩形描画指定のとき DS:002Ah(BYTE)=スイッチ(ラインスタイルの指定の有無) 00h: ラインスタイルの指定なし 01h: ラインスタイルの指定あり DS:002Bh(WORD)=ラインスタイル * 直線、矩形を描く線のパターンを16ビットで指定する。¥ 実線で描画するときはFFFFh。bit 0が画面上の左側、¥ bit 15が画面上の右側に対応する。 ■描画コード=矩形塗り潰し描画指定のとき DS:002Ah(BYTE)=スイッチ 00h: 塗り潰し色・タイルパターンを指定しない 01h: 矩形塗り潰し色を指定する 02h: タイルパターンを指定する DS:002Bh(BYTE)=矩形塗り潰し色(スイッチ=01hのとき有効) 00h: 黒 01h: 白 FFh: 省略 DS:002Ch(BYTE)=使用しない DS:002Dh(BYTE)=タイルパターン長(スイッチ=02hのとき有効) 00〜FFh: タイルパターン格納域長 DS:002Eh(DWORD)=タイルパターン格納域の先頭アドレス(スイッチ=02hのとき有効) 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 08h(LT・HA) 分類 GRAPH BIOS 名前 円、楕円の描画 (GCIRCLE) 対象 PC-98LT・HA 入力 AH=08h DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=中心点のX座標(CX) DS:0022h(WORD)=中心点のY座標(CY) DS:0024h(WORD)=X軸方向の半径(RX) DS:0026h(WORD)=Y軸方向の半径(RY) DS:0028h(BYTE)=円周の描画色 00h: 黒 01h: 白 FFh: フォアグラウンドカラー DS:0029h(BYTE)=フラグ bit 7: 未使用 bit 6: タイルパターン指定(1=あり,0=なし) bit 5: 塗り潰し(1=する,0=しない) bit 4: 開始点、終了点一致時の描画指定方法(1=一致点のみ描画,0=全楕円を描画) bit 3: 終了線分描画(1=あり,0=なし) bit 2: 終了点指定(1=あり,0=なし) bit 1: 開始線分描画(1=あり,0=なし) bit 0: 開始点指定(1=あり,0=なし) DS:002Ah(WORD)=開始点のX座標(SX) DS:002Ch(WORD)=開始点のY座標(SY) DS:002Eh(WORD)=終了点のX座標(EX) DS:0030h(WORD)=終了点のY座標(EY) ■フラグ bit 6,5=01bのとき DS:0032h(BYTE)=図形内部を塗り潰す色 00h: 黒 01h: 白 FFh : 円周の描画色と同じ ■フラグ bit 6,5=11bのとき DS:0032h(BYTE)=タイルパターン長 00〜FFh: タイルパターン格納域長 DS:0033h(DWORD)=タイルパターン格納域の先頭アドレス 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し 06h=オーバーフロー AL=不定 解説 o 関連 INT 1Dh - Function 09h(LT・HA) 分類 GRAPH BIOS 名前 指定色による塗りつぶし (GPAINT1) 対象 PC-98LT・HA 入力 AH=09h DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=塗り潰し開始点のX座標(-32768〜32767) DS:0022h(WORD)=塗り潰し開始点のY座標(-32768〜32767) DS:0024h(BYTE)=領域色パレット番号 00h: 黒 01h: 白 FFh: フォアグラウンドカラーで塗り潰し DS:0025h(BYTE)=境界色パレット番号 00h: 黒 01h: 白 FFh: フォアグラウンドカラーを境界色に指定 DS:0026h(WORD)=作業域の最終オフセットアドレス DS:0028h(WORD)=作業域の先頭オフセットアドレス 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し 07h=作業域不足のため、処理中断 AL=不定 解説 o 関連 INT 1Dh - Function 0Ah(LT・HA) 分類 GRAPH BIOS 名前 タイルパターンによる塗りつぶし (GPAINT2) 対象 PC-98LT・HA 入力 AH=0Ah DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=塗り潰し開始点のX座標(-32768〜32767) DS:0022h(WORD)=塗り潰し開始点のY座標(-32768〜32767) DS:0024h(BYTE)=タイルパターン長(01〜FFh) DS:0025h(DWORD)=タイルパターン格納域の先頭アドレス DS:0029h(BYTE)=境界色 00h: 黒 01h: 白 FFh: フォアグラウンドカラーを境界色に指定 DS:002Ah(WORD)=作業域の最終オフセットアドレス DS:002Ch(WORD)=作業域の先頭オフセットアドレス 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し 07h=作業域不足のため、処理中断 AL=不定 解説 o 関連 INT 1Dh - Function 0Bh(LT・HA) 分類 GRAPH BIOS 名前 画面イメージの格納 (GGET) 対象 PC-98LT・HA 入力 AH=0Bh DS:0020h(WORD)=指定領域の左上X座標(X1) DS:0022h(WORD)=指定領域の左上Y座標(Y1) DS:0024h(WORD)=指定領域の右下X座標(X2) DS:0026h(WORD)=指定領域の右下Y座標(Y2) DS:0028h(DWORD)=格納域の先頭アドレス DS:002Ch(WORD)=格納域の長さ 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 0Ch(LT・HA) 分類 GRAPH BIOS 名前 画面イメージの復帰 (GPUT1) 対象 PC-98LT・HA 入力 AH=0Ch DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=描画領域の左上X座標(X1) DS:0022h(WORD)=描画領域の左上Y座標(Y1) DS:0024h(DWORD)=格納域の先頭アドレス DS:0028h(WORD)=格納域の長さ DS:002Ah(BYTE)=描画モード 00h=格納域のイメージをそのまま描画 01h=格納域のイメージをNOTして描画 02h=格納域のイメージと元の画面パターンとをORして描画 03h=格納域のイメージと元の画面パターンとをANDして描画 04h=格納域のイメージと元の画面パターンとをXORして描画 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 0Dh(LT・HA) 分類 GRAPH BIOS 名前 日本語の描画 (GPUT2) 対象 PC-98LT・HA 入力 AH=0Dh DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=描画領域の左上X座標 DS:0022h(WORD)=描画領域の左上Y座標 DS:0024h(WORD)=日本語JISコード DS:0026h(BYTE)=描画モード 00h=日本語文字をそのまま描画 01h=日本語文字をNOTして描画 02h=日本語文字と元の画面パターンとをORして描画 03h=日本語文字と元の画面パターンとをANDして描画 04h=日本語文字と元の画面パターンとをXORして描画 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 0Eh(LT・HA) 分類 GRAPH BIOS 名前 画面イメージの移動 (GROLL) 対象 PC-98LT・HA 入力 AH=0Eh DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=上下ドット数 +1〜+399: 上方向 -399〜-1: 下方向 DS:0022h(WORD)=左右ドット数 +1〜+639: 左方向 -639〜-1: 右方向 * 実際には、指定された値の絶対値以下で、¥ 最も近い8の倍数分だけ移動する DS:0024h(BYTE)=クリアフラグ 00h: 移動後の残りの領域を黒で埋める 01h: 移動後の残りの領域をバックグラウンドカラーで埋める 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=不定 解説 o 関連 INT 1Dh - Function 0Fh(LT・HA) 分類 GRAPH BIOS 名前 指定ドットのパレット番号の取得 (GPOINT2) 対象 PC-98LT・HA 入力 AH=0Fh DS=グラフィックBIOS用作業域のセグメント DS:0020h(WORD)=パレット番号を求めるドットのX座標(-32768〜32767) DS:0022h(WORD)=パレット番号を求めるドットのY座標(-32768〜32767) 出力 AH=終了ステータス 00h=正常終了 05h=不正呼び出し AL=00h: 黒 01h: 白 FFh: 指定座標がビューポート外 解説 o 関連 INT 1Dh - Function 10h(LT・HA) 分類 GRAPH BIOS 名前 画面イメージの展開(GCOPY) Unimplemented 対象 PC-98LT・HA 入力 AH=10h DX=指定領域の左上X座標 BX=指定領域の左上Y座標 CL=指定領域のX軸方向ドット数 CH=指定領域のY軸方向ドット数 ES:DI=格納域の先頭アドレス 出力 AH=終了ステータス 解説 u '90年版テクニカルデータブックに、このファンクションに関する解説が 掲載されているが、PC-98LT・HAとも実装されていない。 関連